正则表达式

Created at 2019-04-04 Updated at 2019-08-15 Category Linux基础 Tag 正则表达式


1.正则表达式

grep   
    -o  :   只输出匹配到的内容
    -i  :  忽略大小写
    -n  :  输出行号  

    -v   : 取反 显示匹配不到的内容


cat /etc/passwd | grep root -n

ls | grep -n test

正则表达式: regular expression
regex

匹配文本   

    .    : 指代任一字符
    cat /etc/passwd | grep "r..t"


    cat /etc/passwd | grep "r.*t"
    * : 前面的字符任意次 

    []     : 中括号 或者的关系 
                匹配到任意一个就行

    [abc]  :  a或b或c
    [a-z]  : 
    [0-9]  :
    [A-Z]  : 

    cat /etc/passwd | grep "[0-9]"

    [:digit:] : 匹配数字
    [:alpha:] : 匹配字母
    [:alnum:] :  字母数字 
    [:space:] : 空格
    [:punct:] :  标点符号 
    [:lower:] :  小写字母
    [:upper:] :  大写字母 

cat /etc/passwd | grep "[[:upper:]]"

cat /etc/passwd | grep "[[:alpha:]]\+"

匹配次数 : 
    *:   匹配前面的字符任意次 
    .*:   任意字符任意次  

    \+  :  匹配前面字符一次或多次
    \?  :  匹配前面字符0次或1次 

位置 : 
    ^   :   锚定行首 
    cat /etc/passwd | grep "^root"
    cat /etc/passwd | grep "^r"

    ls -l | grep ^d

    $   : 锚定行尾  

    cat /etc/passwd | grep "bash$"


    cat /etc/passwd | grep "nologin$"

    空行:  ^$   


    cat /etc/fstab | grep "^$" -n


词首词尾: 
    \<    \>   

cat reg.txt
chroot is a command
root is a user
myrooter is nothing
user is rooter

cat reg.txt | grep “<root”
cat reg.txt | grep “root>“
cat reg.txt | grep “<root>“

分组 : \(  \)

cat fenzu.txt

he likes his liker
she loves her lover
he likes his lover
she loves her liker

\(abc\)    \1    
cat fenzu.txt  | grep "l..e"
cat fenzu.txt  | grep "l..e.*l..er"


cat fenzu.txt  | grep "\(l..e\).*\1r"

Table of Content

Site by csy using Hexo & Random

Hide